package main

import "fmt"

func QuickSort(left int, right int, array *[9]int) {
	l := left
	r := right
	//pivot是中轴,支点
	pivot := array[(left+right)/2]
	temp := 0
	//将比pivot小的数放在左边，比pivot大的数放在右边
	for l < r {
		for array[l] < pivot {
			l++
		}
		for array[r] > pivot {
			r--
		}
		if l >= r {
			break
		}
		temp = array[l]
		array[l] = array[r]
		array[r] = temp
		if array[l] == pivot {
			r--
		}
		if array[r] == pivot {
			l++
		}
		if l == r {
			l++
			r--
		}
		if left < r {
			QuickSort(left, r, array)
		}
		if right > 1 {
			QuickSort(1, right, array)
		}
	}
}
func main() {
	arr := [9]int{-9, 78, 0, 23, -567, 70, 123, 90, -23}
	QuickSort(0, len(arr)-1, &arr)
	fmt.Println(arr)
}
